Kotlin هي لغة برمجة حديثة تم تطويرها بواسطة JetBrains. تُستخدم بشكل أساسي لتطوير تطبيقات Android، لكنها أيضًا تُستخدم في تطوير تطبيقات الويب وسيرفرات الخلفية (Back-end) وحتى تطبيقات سطح المكتب.
Kotlin هي لغة برمجة حديثة تم تطويرها بواسطة JetBrains. تُستخدم بشكل أساسي لتطوير تطبيقات Android، لكنها أيضًا تُستخدم في تطوير تطبيقات الويب وسيرفرات الخلفية (Back-end) وحتى تطبيقات سطح المكتب.
                            fun main() {
                                println("مرحبًا بك في Kotlin!")
                            }
                        
                        
                            val name = "Ali"  // لا يمكن تغيير قيمته
var age = 25      // يمكن تغييره لاحقًا
age = 26  // ✅ هذا مسموح
// name = "Omar"  ❌ سيؤدي إلى خطأ لأنه val
                        
                        
                            val number: Int = 10
val price: Double = 19.99
val message: String = "Hello Kotlin"
val isStudent: Boolean = true
                        
                    المحددات (Modifiers) في Kotlin تُستخدم للتحكم في سلوك المتغيرات، الدوال، والصفوف. هناك أنواع مختلفة من المحددات، مثل محددات الوصول، محددات الأصناف والدوال، ومحددات التغير.
                            class Person {
                                private val secret = "هذه معلومة خاصة"
                                internal val age = 30
                                protected val name = "أحمد"
                            }
                            
                            fun main() {
                                val person = Person()
                                println(person.age) // ✅ مسموح (لأنه internal)
                                // println(person.secret) ❌ غير مسموح (لأنه private)
                            }
                        
                        
                            open class Animal {
                                open fun makeSound() {
                                    println("صوت غير محدد")
                                }
                            }
                            
                            class Dog : Animal() {
                                override fun makeSound() {
                                    println("Woof! Woof!")
                                }
                            }
                            
                            fun main() {
                                val dog = Dog()
                                dog.makeSound()  // Woof! Woof!
                            }
                        
                        
                            object Constants {
                                const val PI = 3.14
                            }
                            
                            fun main() {
                                println(Constants.PI)
                            }
                        
                    التنقل بين الشاشات في تطبيقات Android باستخدام Kotlin، فهناك عدة طرق للتصفح بين الأنشطة (Activities) أو الواجهات (Fragments).
                            import android.content.Intent
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import android.widget.Button
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        val button = findViewById
                        
                            val intent = Intent(this, SecondActivity::class.java)
intent.putExtra("USERNAME", "Ahmed")
startActivity(intent)
                        
                        
                            import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
class NewFragment : Fragment() {
    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
        return inflater.inflate(R.layout.fragment_new, container, false)
    }
}
                        
                    إذا كنت تبحث عن أنماط البرمجة المتقدمة في Kotlin، فإليك بعض المفاهيم القوية التي تساعد في كتابة كود نظيف وفعال.
                            fun operateOnNumbers(a: Int, b: Int, operation: (Int, Int) -> Int): Int {
                                return operation(a, b)
                            }
                            
                            fun main() {
                                val sum = operateOnNumbers(5, 3) { x, y -> x + y }
                                println(sum) // 8
                            }
                        
                        
                            interface Logger {
                                fun log(message: String)
                            }
                            
                            class ConsoleLogger : Logger {
                                override fun log(message: String) = println("Log: $message")
                            }
                            
                            class UserService(logger: Logger) : Logger by logger
                            
                            fun main() {
                                val service = UserService(ConsoleLogger())
                                service.log("تم إنشاء مستخدم جديد") // Log: تم إنشاء مستخدم جديد
                            }
                        
                        
                            sealed class Result
class Success(val data: String) : Result()
class Error(val message: String) : Result()
fun handleResult(result: Result) {
    when (result) {
        is Success -> println("نجاح: ${result.data}")
        is Error -> println("خطأ: ${result.message}")
    }
}
                        
                    المشروع سيكون تطبيق آلة حاسبة يحتوي على واجهة مستخدم (UI) يمكن للمستخدم من خلالها إجراء العمليات الحسابية الأساسية (الجمع، الطرح، الضرب، القسمة).
                            @IBOutlet weak var displayLabel: UILabel!
@IBAction func numberPressed(_ sender: UIButton) {
    let number = sender.titleLabel?.text
    displayLabel.text = displayLabel.text! + number!
}
                        
                    الجمل الشرطية والحلقات هي أدوات أساسية في البرمجة تسمح باتخاذ القرارات وتكرار العمليات.
                            val age = 18
if (age >= 18) {
    println("أنت بالغ.")
} else {
    println("أنت قاصر.")
}
                        
                        
                            for (i in 0..<5) {
    println("الرقم: $i")
}
                        
                    الدوال هي كتل من الكود يمكن استدعاؤها لتنفيذ مهمة محددة. تساعد في تنظيم الكود وإعادة استخدامه.
                            fun greet(name: String) {
                                println("مرحبًا، $name!")
                            }
                            
                            fun main() {
                                greet("علي")  // ✅ مرحبًا، علي!
                            }
                        
                    المصفوفات هي هياكل بيانات تخزن مجموعة من العناصر في ترتيب معين. يمكن الوصول إلى العناصر باستخدام الفهرس.
                            val numbers = arrayOf(1, 2, 3, 4, 5)
println(numbers[0])  // ✅ 1
                        
                    الهاش هو هيكل بيانات يخزن البيانات في أزواج مفتاح-قيمة. يمكن استخدامه لتخزين البيانات المرتبطة.
                            val person = mapOf("name" to "علي", "age" to "25")
println(person["name"])  // ✅ علي
                        
                    الاستثناءات هي أخطاء تحدث أثناء تنفيذ البرنامج. يمكن التعامل معها باستخدام `try`، `catch`، و `finally`.
                            try {
    val result = 10 / 0
} catch (e: ArithmeticException) {
    println("حدث خطأ: ${e.message}")
} finally {
    println("هذا الكود سيتم تنفيذه دائمًا.")
}